This invention relates to a control system for an industrial robot of the kind comprising first control means for manually controlling the robot during a programming stage involving teaching the robot to follow an operating path defined by a number of set points; memory means for storing the coordinates of said set points as position instructions and other operating instructions which, together with said set points, define a work cycle of the robot; second control means for control of the control system during the programming stage and for storing or entering the said instructions; and means arranged, during automatic running of the robot, to control the robot in accordance with information stored in the memory means during the programming stage.
In a control system of the kind referred to, the robot, during programming, is run with the aid of the first control means--which can be manually influenced --successively to said number of set points which define the movement path or the operating positions that the robot is to follow or assume during automatic operation. These positions are stored in the form of a sequence of position instructions in a program memory, i.e. the memory means, present in the robot. In addition to the pure position instructions, other operating instructions are stored in the program memory giving further information about the working cycle of the robot. For example the operating instructions may give information about the desired robot velocity in a certain section of the movement, about control of outputs from the robot to external equipment, about the desired precision of the robot movement, about conditions for the robot movement in dependence on input signals from external sensors or equipments, about calls for pre-programmed subroutines, and so on. During automatic operation of the robot, the program instructions are run through successively, the robot is displaced successively between the different programmed positions in accordance with the position instructions and further carries out the measures which are programmed into the instructions.
The programming work is often carried out by the robot user, and it is therefore of great importance that the robot and its control system are so designed that the programming work can be carried out in a simple and fast manner by personnel who are not specially trained. In addition to the direct programming of position instructions and other instructions, the programming work includes changes of and other editing of already programmed instructions or programs, and it is of course of importance that this editing work can also be carried out in a simple and rapid manner.
Thus, during the programming stage the robot must first of all be manually displaced to each one of the set points or positions which define the desired robot movement. When a desired position has been assumed, information about the position is stored in the program memory by activating an operating or control member, for example a push button. The position transducers built into the robot are thereby read and the coordinates for the robot position are stored as a position instruction in the program memory of the robot. It is previously known to perform this position programming with the aid of the so-called play-back method, whereby the robot arm is gripped and moved manually along the desired movement path. When using this method, the servo-motors of the robots must, for safety reasons, be turned off, and the method is therefore only applicable to robots which are mechanically well balanced. Furthermore, for reasons which are easy to understand, the method cannot be employed with large robots. These and other reasons make the method only applicable in certain special cases, and it is not suitable for a robot which is intended for general application. It is also previously known to control robot movement during a programming phase by means of pushbuttons, for example two pushbuttons for each robot axis, whereby when depressing a button, the robot is displaced at an optional velocity (possibly an incremental distance) along the axis in question. However, it this method--especially for untrained operators--often involves considerable difficulties and the programming work therefore proceeds relatively slowly.
As mentioned above, during programming an operator must be able to program or influence a plurality of other functions of the control system. It is previously known to have, for this purpose, an operating unit with a so-called function-oriented key set. In such a key set, each key has a certain specified function which is clear from the text of the key. An operating unit of this kind therefore has advantages in the form of simple operation, and furthermore such an operating unit can be made compact and portable. However, with a reasonable number of pushbuttons it is only possible to realize a very limited number of functions in a compact and portable operating unit of this kind, and this considerably limits the applicability of such operating units. Admittedly it would be possible, with a given number of pushbuttons, to give each key or pushbutton a double or triple function, but in such case all advantages of the simplicity of operation would be lost.
It is also known to use, for programming of the different functions, a keyboard in combination with a visual display unit (VDU). During programming, the names and possible numerical values of the desired functions and other information are written out on the keyboard. The instruction in question, and possibly a number of additional instructions, can then be read on the VDU. This method is very flexible but has also considerable disadvantages First of all it is time-consuming, especially for an untrained operator, to write out the names of the different instructions with the aid of the keyboard. In the second place, a faulty entry on the keyboard gives rise to an error indication, and the instruction has to be repeated. In the third place, the operator must learn by heart the names of, and the spelling of, the different functions, or he must consult a handbook, during the programming work, which contains the names and correct abbreviations of the different functions. These facts contribute in making programming with this type of operating unit relatively slow. In the fourth place, for natural reasons the weight and dimensions of an operating unit of this kind will be so large that it must be positioned in a stationary manner, and then often at a relatively great distance from the robot. It will then be very difficult for an operator to manage the programming work.
The present invention aims to provide a control system for an industrial robot of the kind mentioned above, which makes it possible for an arbitrary user to carry out the programming work in a rapid and simple manner with a minimum of previous instruction.